home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / 3D Class Library / cosin.cp < prev    next >
Text File  |  1996-06-27  |  2KB  |  56 lines

  1. // =======================================================================
  2. //    3D Class Library, © Xilex Group
  3. // - ------------------------------------------------------------------- -
  4. //    Written by Dmitry Boldyrev
  5. // =======================================================================
  6.  
  7. #include <math.h>
  8. #include <stdio.h>
  9. #include "cosin.h"
  10.  
  11. static WORD SinTable[360], CosTable[360];
  12.  
  13. void initSinCos()
  14. {
  15.     for (WORD count = 0; count < 360; count++)
  16.     {
  17.         SinTable[count] = (WORD) (sin(count * PI / 180.0) * 32767);
  18.         CosTable[count] = (WORD) (cos(count * PI / 180.0) * 32767);
  19.     }
  20. }
  21.  
  22. // =======================================================================
  23. //    Only inputs 0..359 are valid
  24. // =======================================================================
  25.  
  26. WORD RSIN(WORD deg)
  27. {
  28.     return SinTable[BOUND360(deg)];
  29. }
  30.  
  31. // =======================================================================
  32. //    Any inputs valid
  33. // =======================================================================
  34.  
  35. WORD DSIN(SINGLE rad)
  36. {
  37.     return RSIN((WORD) (rad * 180.0 / PI));
  38. }
  39.  
  40. // =======================================================================
  41. //    Only inputs 0..359 are valid
  42. // =======================================================================
  43.  
  44. WORD RCOS(WORD deg)
  45. {
  46.     return CosTable[BOUND360(deg)];
  47. }
  48.  
  49. // =======================================================================
  50. //    Any inputs valid
  51. // =======================================================================
  52.  
  53. WORD DCOS(SINGLE rad)
  54. {
  55.     return RCOS((WORD) ((rad * 180.0) / PI));
  56. }